//该文件主要用于创建并导出Store的实例对象，我们一般称为store
import Vue from 'vue'
import Vuex,{Store} from 'vuex'

Vue.use(Vuex)

export default new Store({
  // actions中的方法，用于响应组件中的“动作” ——  服务员
  actions:{
    // 1.jia何时调用？—— 当触发了该action时（当有人“呼唤”这个“服务员”的时候）
    // 2.jia中的this是谁？ —— vuex中最厉害的那个人store（老板）
    // 3.jia收到什么参数？ —— context、value（工具箱、数据）
    // 4.jia是否需要写返回值 —— 不用写，靠逻辑活着
    jia(context,value){
      // 两种写法均能“摸到”commit，推荐用context
      // this.commit()
      console.log('jia这个服务员被调用了')
      context.commit('JIA',value)
    },
  },
  mutations:{
    // 1.JIA何时调用？—— 当触发了该mutation时（当有人“呼唤”这个“厨师”的时候）
    // 2.JIA中的this是谁？ —— vuex中最厉害的那个人store（老板）
    // 3.JIA收到什么参数？ —— state、value（当前的state、携带过来的数据）
    // 4.JIA是否需要写返回值 —— 不用写，靠逻辑活着
    JIA(state,value){
      console.log('JIA这个厨师被调用了',state.sum)
      state.sum += value
    }
  },
  // state是Vuex中的核心，用于保存数据
  state:{
    sum:0,
    x:100,
    y:200
  }
})